package com.dog.basics.service.common;


import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.basics.bean.dto.admin.common.PositioninfoAddDto;
import com.dog.basics.bean.dto.admin.common.PositioninfoEditDto;
import com.dog.basics.bean.dto.admin.common.PositioninfoFormDto;
import com.dog.basics.bean.model.common.DogComPositioninfo;
import com.dog.basics.bean.vo.admin.common.PositioninfoVo;
import com.dog.basics.bean.vo.api.common.AllPositioninfoVo;
import com.dog.basics.common.util.PageParam;

import java.util.List;

/**
 * <p>
 * 省市区信息 服务类
 * </p>
 *
 * @author zmr
 * @since 2020-05-27
 */
public interface IDogComPositioninfoService extends IService<DogComPositioninfo> {


    /**
     * @Description: 增加省市区信息
     * @Param: PositioninfoAddDto
     * @return: Boolean
     * @Author: zhangrm
     * @Date: 2020/05/27 0027
     */
    Boolean saveObj(PositioninfoAddDto obj);


    /**
     * @Description: 删除省市区信息
     * @Param: id
     * @return: Boolean
     * @Author: zhangrm
     * @Date: 2020/05/27 0027
     */
    Boolean deleteObj(Long id);


    /**
     * @Description: 修改省市区信息
     * @Param: PositioninfoEditDto
     * @return: Boolean
     * @Author: zhangrm
     * @Date: 2020/05/27 0027
     */
    Boolean editObj(PositioninfoEditDto obj);


    /**
     * @Description: 分页省市区信息列表
     * @Param: PositioninfoFormDto
     * @return: IPage<PcPositioninfoVo>
     * @Author: zhangmr
     * @Date:  2020/05/27 0027
     */
    IPage<PositioninfoVo> getPageList(PageParam page, PositioninfoFormDto obj);


    /**
     * @Description: 全国省市区信息
     * @Param:
     * @return:
     * @Author: zhangmr
     * @Date:
     */
    AllPositioninfoVo getAllPositioninfo();


    /**
     * @Description: 通过父ID获取子省市区信息
     * @Param:
     * @return:
     * @Author: zhangmr
     * @Date:
     */
    List<com.dog.basics.bean.vo.api.common.PositioninfoVo> getPositioninfo(Long id);

    /**
     * @Description: 设置省市区信息是否可用
     * @Param: PositioninfoEditDto
     * @return: Boolean
     * @Author: zhangrm
     * @Date: 2020/05/27 0027
     */
    Boolean editObjUse(Long id);
}
